Social Networking Runtime

ABSTRACT

Provided are apparatuses and methods for social networking applications and services. New applications and services based on a common runtime may be developed. Such applications and services may allow scripts to be loaded and interpreted. Furthermore, dynamic links generated by the scripts may be sent to an application engine for execution. The dynamic links may also be sent (e.g., shared) with other devices and/or users in a social networking environment.

RELATED APPLICATION

This application is related to pending U.S. patent application Ser. No.12/079,191, entitled “APPARATUS, METHODS, AND COMPUTER PROGRAM PRODUCTPROVIDING IMPROVED APPLICATION DEVELOPMENT FOR ELECTRONIC DEVICES,”filed Mar. 24, 2008, which is herein incorporated by reference in itsentirety.

FIELD OF THE INVENTION

The invention relates generally to social networking applications andservices. More specifically, the invention relates to developing newapplications and services based on a common runtime.

BACKGROUND

Online social networking and communication services have become newforums for people to converse, socialize, and do business remotelywithout the need for face-to-face meetings. Mobile communicationtechnology has also furthered ways in which individuals socialize byenabling communication while on the go. Such services and technologiesprovide users with instantaneous and continuous access to any other useror to any number of users simultaneously. However, these new means ofremote communication often lack many of the social cues one gets whenindividuals are communicating in the same place. Various methods havecome about that, to some extent, help make up for the lack of socialcues. One such method is to exchange between individuals, or to publishon social communication networks, presence and activity information ofthe individuals. As an example, such information may inform others aboutthe level of activity and attentiveness of an individual in a socialcommunication network or about an individual's current availability toconverse.

Furthermore, numerous APIs exist in the social networking industry. Forexample, Google's OpenSocial API provides a common API for socialapplications across multiple Internet websites. Facebook also providesdevelopers with an API that enables them to add social context toapplications by utilizing profiles, friends, photos, and event data.Meanwhile, Google's Data APIs attempts to provides a simple standardprotocol for reading and writing data on the web.

In addition, web systems are already known that allow sharing of databetween applications on different Internet websites. For example,Microsoft .NET Passport technology allows different websites to takeadvantage of Microsoft's Passport technology to authenticate userswithout having to store and maintain a user's authentication informationon its own servers. Microsoft .NET allows different websites to accessMicrosoft .NET web services to perform a particular function.

Software virtual machines are also well known. Sun Microsystemsdeveloped the JAVA™ programming language that operates on a virtualmachine architecture. In such languages, the programming code (i.e.,bytecode) is submitted to an interpreter that reads and compiles thebytecode into native code that can be run on the machine's processor.

Nevertheless, while the aforementioned APIs and technologies assistdevelopers in creating web applications and users in enjoying them. Inweb applications, the data is only a part of its own runtimeenvironment. Every web application takes care of its own runtime, andthere is no concept of a common runtime to develop new richer multiplecommunication applications. Therefore, there exists a need for a method,apparatus, and system for addressing at least one or more of theseshortcomings.

BRIEF SUMMARY

The following presents a simplified summary of aspects of the inventionin order to provide a basic understanding of some aspects of theinvention. This summary is not an extensive overview, and is notintended to identify key or critical elements or to delineate the scopeof the claims. The following summary merely presents some concepts andaspects in a simplified form as a prelude to the more detaileddescription provided below.

To overcome limitations in the prior art described above, and toovercome other limitations that will be apparent upon reading andunderstanding the present specification, aspects of the presentdisclosure are directed to apparatuses, systems, and methods for socialnetworking applications and services. New applications and servicesbased on a common runtime may be developed. Such applications andservices may comprise a program script and a user interface (UI) script.After the appropriate script is loaded, the appropriate elements of thescript may be interpreted upon the appropriate triggering event oraction. Furthermore, dynamic links (e.g., a call log item) generated bythe program script and other related components of the service may bedistributed to other devices with a common runtime (e.g., socialnetworking environment) for use when executing, among other things, UIscripts on their application engines. One skilled in the art willappreciate that numerous steps may be involved in the generation anddistribution of dynamic links, and execution of UI scripts based onthese dynamic links.

Examples of social events in accordance with various aspects of theinvention include, but are not limited to, incoming calls on a mobiledevice, photos taken together through camera on a mobile device,downloading shared landmarks, calendar events of friends, etc. Oneskilled in the art will appreciate after review of the entiretydisclosed herein that various aspects of the disclosure may be usedalone or in combination with each other.

In another example, a tangible computer-readable medium containingexecutable code is provided for performing methods disclosed herein.Also, the computer-readable medium may be implemented on any devicedisclosed herein. The devices may include, but are not limited to,circuitry for a global positioning satellite receiver and a media playercomponent.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present invention and theadvantages thereof may be acquired by referring to the followingdescription in consideration of the accompanying drawings, in which likereference numbers indicate like features, and wherein:

FIG. 1 illustrates basic components of a computing system on whichfeatures described herein may be implemented.

FIG. 2 illustrates a method illustrating one or more aspects of theinvention.

FIG. 3 is an overview architectural diagram of components in accordancewith various aspects of the invention.

In the following description, reference is made to the accompanyingdrawings, which form a part hereof, and in which is shown by way ofillustration various features that may be used. It is to be understoodthat other embodiments may be utilized and structural and functionalmodifications may be made without departing from the scope and spirit ofthe present application.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments in which theinvention may be practiced. It is to be understood that otherembodiments may be utilized and structural and functional modificationsmay be made without departing from the scope and spirit of the presentinvention.

FIG. 1 depicts an illustrative operating environment in accordance withaspects of the invention where, in one aspect, basic components of acomputing system on which features described herein may be implemented.The system 100 may take the form of a general purpose computer, such asa personal computer, mainframe computer, network based server, etc.Alternatively, system 100 may be implemented as any other fixed ormobile electronic device, such as a cellular telephone, mobilecommunication device, personal data assistant (PDA), pager, TV device,music player, AM/FM/digital radio receiver, video player, etc.

The system 100 may have one or more processors 101, such as aprogrammable logic device or microcontroller, which comprise logicalstructure, and may optionally execute instructions, to provide featuresdescribed herein. The instructions (and other data described below) maybe stored as computer-readable instructions on one or more memorydevices 102, which may be dynamic and/or static random access memories(RAM), read-only memories (ROM), magnetic or optical disk, or any otherdesired computer-readable storage device. Computer executableinstructions and data used by processor 101 and other components withindevice 100 may be stored in a computer readable memory. The memory maybe implemented with any combination of read only memory modules orrandom access memory modules, optionally including both volatile andnonvolatile memory. The instructions may also be computer-readableinstructions received over a network 108 and through a network interface107. The system 100 may also include one or more removable media 103that can also store any of the data described herein (e.g.,computer-readable instructions, data described below, etc.). Theremovable media 103 may be any desired type, such as removable FLASHmemory, disk drives, optical or magnetic disks, etc. Software may bestored within memory 102 and/or storage 103 to provide instructions toprocessor 101 for enabling device 100 to perform various functions(e.g., media player, etc.) Alternatively, some or all of these computerexecutable instructions may be embodied in hardware (e.g., media MP3player circuitry, global positioning satellite receiver circuitry, etc.)or firmware (not shown).

The system 100 may host a social communication service. A socialcommunication service may be any communication service that a user mayaccess through a network, such as an online chat service, webpage,bulletin board system, email server, professional or social networkingservice, photo sharing service, peer-to-peer service, etc. The servicesmay provide real-time and/or non-real-time communication and thecommunication may be one-way or two-way between users of the services.The system 100 may also serve as a user interface to a local or remoteserver that provides social communication services or socialcommunication channels. As such, the user may make requests forinformation about another user or may provide information about itself(e.g. location of the user) to another user who is requestinginformation.

The system 100 may also behave as a repository or server in which usersretrieve and store information (e.g. storing a user's privacypreferences) or which performs calculations necessary for carrying outfeatures described herein (e.g. determining the relationship between twocommunication services, or determining the activity of a user in acommunication service). The system 100 may perform a combination of anyof these functions. For example, in a peer-to-peer service, system 100may host a communications service, serve as a user interface, serve as arepository for data, and perform the calculations necessary for carryingout features described herein. As an alternate example, the featuresdescribed herein may be performed in a distributed fashion by a numberof systems similar to system 100.

As a user interface, the system 100 may also include features, such as aGlobal Positioning System (GPS) Interface 108 or other location enablingdevice, to enable the determination of the user's location. To interactwith the user, the system 100 may include one or more user input devices106 and one or more output devices. The user input devices 106 may be,for example, alphanumeric push buttons on a keyboard (e.g., desktopcomputer keyboard, mobile telephone keypad, etc.), touch and/orcapacitive-sensitive pads on a laptop, computer mouse, trackball, styluson a sensitive input area or display, motion sensors, video camera, etc.The output devices may include video output devices 104, such as amobile phone display (e.g., LCD display), monitor display, television,or electronic paper, which can display user interfaces of variousservices and programs, video, text, or other visible information to theuser. The output devices may include one or more internal/externalspeakers 105 (e.g., headphones plugged into a mobile device), which canbe used to play audio tracks, voice communications, audible cues, orother audible information for the user. The output devices may alsoinclude electromechanical devices 109 for inertial and motion feedbackto the user.

The user may further interact with the system 100 remotely through thenetwork 110 and network interface 107. Network connection 107 may be anyform of computer interface. For example, a system 100 may be a computingdevice connected to the Internet through a wireless interface (such asWLAN, Bluetooth, WIMAX) or wired interface, and network connection 107may include any of these elements. If system 100 is implemented in amobile telephone, network connection 107 may include the radio-frequency(RF) wireless circuitry used to allow the phone to communicate data toand from an external cellular telephone network or satellite network. Ifsystem 100 is implemented in an audio/video player or TV device thenetwork connection 107 may include circuitry and/or receiver used toallow the system to receive signals from analog/digital radio/video/TVnetworks. The network 110 to which the system 100 communicates may thenbe the Internet, a telephone network (e.g., mobile or public-switched),cable television, satellite, or any other desired network. The network110 may comprise any multiple of the same or different types of networksand network connection 107 may be configured to enable communicationthrough the multiple networks.

Moreover, computing devices 112 and 114 may interact with the system 100remotely through the network 110 and network interface 107. Thecomputing devices 112 and 114 may be a laptop computer, personalcomputer, server machine, handheld computing device (e.g., a PDA),mobile phone, or any other appropriate computing device connected to thenetwork 112. The computing device 112 and 114 may be comprised of one ormore servers and/or devices capable of communicating through the network110 to receive and transmit data.

FIG. 2 illustrates a method illustrating one or more aspects of theinvention. In particular, the method of FIG. 2 is described below basedon the system overview architecture discussed in relation to FIG. 3 andFIG. 1 above. FIG. 3 is an overview architectural diagram of components400 in device 100 in accordance with various aspects of the invention.It is understood that the method of FIG. 2 may be adapted to accommodatemodifications to the architecture of FIG. 3 without departing from thescope and spirit of the instant disclosure.

In step 204, a program script 202 may be loaded into a part of a socialnetworking runtime system 402 running in device 100. In one example, theprogram script may adhere to Synchronized Multimedia IntegrationLanguage (SMIL). The SMIL version 2.0 namespace is partitioned into tenfunctional areas that each provides some functionality. Within eachfunctional area further partitioning is applied into modules. Oneskilled in the art will appreciate that although the followingillustrative program script is illustrated below in SMIL, otherprotocols (either public or proprietary) may be used to accomplish thedesired function, and the invention is not merely limited to SMILscripting:

<a href=“pic_repos.smil” begin=”photo_taken AND BT_device_discovery(known_people.xml)” />

The above illustrative program script excerpt involves two social eventsthat have their runtimes combined through a social networking runtime.One event is the event of the “camera” communication service on thesocial networking runtime where a camera on the device is used to takepictures of friends. Another is of the “Bluetooth” communication serviceabout what known devices (e.g., of friends, colleagues, etc.) werewithin Bluetooth® range. The program script may be used for a socialnetworking service that causes the device 100 to associate a dynamiclink among the particular Bluetooth-devices discovered when the pictureis taken by one of their users, along with image data and contextualinformation about the image. Therefore, in this one example, the programscript generates the repository of dynamic links.

In addition, the dynamic links may be stored in a repository 206 indevice 100 (e.g., memory 102 or removable media 103). Any new servicewith above “program script” and “UI script” installed on the devicewould have its UI scripts updated in step 212 based on dynamic linkanalysis performed on the repository of dynamic links. For example, thefollowing element may be stored in a file (e.g., “pic_repos.smil” of theabove program script's href's attribute value) in the data model 404 indevice 100:

<img begin =”BT_found(“John,Mary”) AND photo_taken(“Mike”) AND   2008-05-31T19:20+01:00” src=”pic2008053131.jpg”/>

The element may provide dynamic links among “Mike”, “John” and “Mary”,and also the associated content (e.g., pic2008053131.jpg of src'sattribute value). As a result, in one example service whose UI script isshown immediately below, when the appropriate trigger action is detectedon Mike's device 100 (e.g., an incoming call from Mary), the appropriatedynamic links' associated content (from immediate.smil of href'sattribute value) are shown (e.g., one or more pictures taken of Mary maybe displayed on device 100 to accompany the incoming call). This UIscript in data model 404 on Mike's device 100 may manage at least theexecution of the one or more resulting actions.

-   -   <a href=“immediate.smil” begin=“incall(“Mary”)”/>

Furthermore, in step 208, in accordance with various aspects of theinvention the “report and intelligent change” module may generateduplicate dynamic links (similar to above) and distribute to otherdevices 112 as the dynamic links' ends. The dynamic link may be recordedinto “pic_repos.smil” per the aforementioned program script (illustratedabove). The “report and intelligent change” module may perform dynamiclink analysis and distribution by accepting a repository of dynamiclinks and outputting distributed ends of dynamic links. The module mayinclude hardware and/or software (i.e., computer-executable program codestored on a computer-readable medium). Device 112 may be similar todevice 100 in that it may also include a processor, memory, input,output, and other components displayed in FIG. 1. Device 100 maydistribute the additional generated elements to devices (e.g., device112) corresponding to a user identified as John. Some examples of theadditional generated element include:

   TO JOHN: <John-pic2008053131.smil>: <a href=“Mike:pic2008053131.smil”begin=”BT_found(“Mike,Mary”)”    AND 2008-05-31T19:20+01:00” />   TOMARY: <Mary-pic2008053131.smil>: <a href=“Mike:pic2008053131.smil”begin=”BT_found(“Mike,John”)”    AND 2008-05-31T19:20+01:00” />The aforementioned elements may be configured to be distributed (in step210) to John and Mary, respectively.

In one example in accordance with various aspects of the invention, onthe device 112 corresponding to John, for example, a user interface (UI)script stored in the data model in the device 112 may be copied andmodified (i.e., “variablized”) according to the aforementioned elementsreceived. The modified UI scripts for a slideshow feature may be storedin a particular portion (e.g., the immediate area) of the data model inthe device 112 and be executed when the appropriate triggering eventoccurs. For example, in the case of user John, the UI script, before ithas been “variablized” may appear as follows:

    <img id=”image_recall” src=”recall.gif” /> <a href=“immediate.smil”begin=”image_recall.click, incall(“Mary”)” />

In particular, the aforementioned UI script and its dynamic links willbe modified (i.e., “variablized”) in step 212. The modified UI script(in step 214) may, in some embodiments, appear as follows:

    <img id=”image_recall” src=”recall.gif” /> <ahref=“Mike:pic2008053131.smil” begin=” image_recall.click + 1s,        incall(“Mary”)” />

In this example, “immediate.smil” was replaced with“Mike:pic2008053131.smil” by the “report and intelligent change” moduledescribed above. In addition, the components of the script may beprocessed to interpret, for example, the “begin” attribute of thescript. The first begin attribute is about time in this example. Thus,the following elements in “Mike:pic2008053131.smil.”:

<img begin=“2008-05-31T19:20+01:00” src=“1.jpg”> <imgbegin=“2008-05-31T19:28+01:00” src=“2.jpg”>would be replaced with the following elements: (assuming a 1 secondinterval)

<img begin=“1s” src=“1.jpg”> <img begin=“2s” src=“2.jpg”>

Likewise, the “BT_found” attribute (i.e., Bluetooth® device detected)may be replaced with an “incall” attribute to signal the device 112 torecall the appropriate contextual information when receiving an incomingcall (i.e., “incall”) from a particular caller. In this example, duringtranslation only those “BT_found” with “Mary” would be picked out sincethe trigger in UI script is “incall(‘Mary’).”

In step 216, the final UI script may be sent to an application engine406 for, among other things, execution. Consequently, the applicationengine performs the desired action of displaying a picture of the calleron the display 104 of the device 112 either during an incoming call from“Mary” or the “recall.gif” picture is clicked. In another embodiment,the picture displayed may include the caller and the recipient of thecall.

In other examples in accordance with aspects of the invention, a device100 with a common runtime for applications may use shared landmarks toprovide navigation features. For example, as illustrated below, thebegin attribute of program script in such an embodiment may include a“landmark(‘current_pos’)” value (i.e., the social event of GPS landmark)and the “Data_upload” value (i.e., the data sharing's social event). Asa result, all landmarks that have been uploaded near the currentposition are recorded using a program script. Meanwhile, the UI scriptmay include a begin attribute with a value of“query_landmark(‘NameOrPicture.xml’).” Thus, when a “query_landmark”event is received by device 100, the correct place is used as adestination to start navigating by using“href=“landmark_navigation:immediate.smil”” to send landmark_navigationevent to GPS landmark service.

An illustrative program script excerpt may appear as follows:

<a href=“landmark_repos.smil” begin=”landmark(“current_pos”)       ANDData_upload” />

And an illustrative UI script excerpt may appears as follows:

 <a href=”landmark_navigation:immediate.smil”begin=”query_landmark(“NameOrPicture.xml”)” />

In another example in accordance with aspects of the invention, a device100 with a common runtime for applications may contain a UI script thatuses the text messaging feature (e.g., SMS or other comparable feature)to automatically reply to incoming calls during particular time periodswith a predetermined message to the caller. For example, the beginattribute in such an embodiment's program script may include an“incall(timeperiod.xml)” value. As a result, all incoming calls that arereceiving during the time periods listed in the timeperiod.xml file arerecorded. Then, through UI script excerpt as follows, those incomingcalls during timeperiod.xml would be automatically replied to with anSMS message to the caller with a predetermined message (e.g., “in ameeting—call me after 10 a.m.”):

-   -   <a href=“smsto:immediate.smil” begin=“inCall(TimePeriod.xml)”/>

In yet another example in accordance with aspects of the invention, adevice 100 with a common runtime for applications may contain a programscript that records which song is (or songs were) playing on the device100 at the time of an incoming call on the device 100:

 <audio begin=“inCall(john), 1995,9:20” src=“love.mp3”> <audiobegin=“inCall(john), 1995,10:35” src=“love.mp3”>By intelligently recognizing the pattern of what songs will be played onsubsequent calls from that particular caller, the device 100 may use UIscripts to direct the device to play the song and/or the portion of thesong as a ringtone for the caller. As such, the device 100 may beconfigured to set the song (or portion of the song) as the ringtone onthe device 100 for when the caller calls shown as illustrated herein.For example, the begin attribute of a program script in such anembodiment may include “MediaPlaying” (i.e., the social event of mediaplaying service) and “inCall” (i.e., the social event of call service)values. As a result, if multimedia is playing (i.e., “MediaPlaying” isTRUE) when there's an incoming call event, the context information isrecorded using program scripts. Furthermore, in various embodiments,based on the historical data about what song is playing when incomingcalls are received for a particular caller, the UI script may bevariablized to update the ringtone on the device 100 to that song whichis most frequently playing when there is an incoming call from thecaller.

An illustrative program script excerpt may appear as follows:

-   -   <a href=“mus_repos.smil” begin=“MediaPlaying AND inCall”/>

And an illustrative UI script excerpt may appear as follows:

-   -   <a href=“immediate.smil” begin=“inCall”/>

In other examples in accordance with aspects of the invention, a device100 with a common runtime for applications may allow reminders andappointments for events (e.g., birthdays, doctor's appointment, etc.) tobe recorded. For example, the begin attribute of a program script insuch an embodiment may include the“calendar(birthdayPartyInvitation.xml)” value. As a result, allinvitations about events like birthday party in the calendar would berecorded. Then, when the date of the event (e.g., birthday date fromparty invitation) arrives, a UI script may direct the device 100 todisplay an image to remind the user of device 100 about the event, forexample, using a social event of an alarm service on the device 100. Forexample, a picture of a birthday cake may be displayed as a default forall birthday party reminders. Alternatively, an image of a birthday cakemay appear besides an image of the person for whom the event is relevant(e.g., today is his/her birthday). Moreover, a short greeting messagemay be sent to him/her. One skilled in the art will appreciate thatthere are many other examples and combinations possible.

In various embodiments in accordance with aspects of the invention, theunderlying application programmer's interface (API) is configured to becapable of growing dynamically. The triggering social events (e.g.,incall) and actions (e.g., smsto) above are analogous to executing afunction call of an API. As such, as the variety of triggering eventsand actions grow, the API may grow dynamically.

The embodiments herein include any feature or combination of featuresdisclosed herein either explicitly or any generalization thereof. Whilethe invention has been described with respect to specific examplesincluding presently preferred modes of carrying out the invention, thoseskilled in the art will appreciate that there are numerous variationsand permutations of the above described systems and techniques. As usedherein, a “program script” may be embodied in: a software (and/orfirmware) program instruction, a portion of a software (and/or firmware)program instruction, and/or a portion of a software (and/or firmware)program. The features herein also include one or more computer-readablemedia, storing computer-executable instructions that, when executed by acomputer, cause the computer to perform the various method featuresrecited above. The features herein also include an apparatus having aprocessor configured to perform the various method features recitedabove.

1. A method comprising: loading into a processor in a computing device aprogram script involving a social event and an action; interpreting theprogram script to generate a repository of dynamic links related to dataand providing contextual information relating to the social event;processing at the processor the repository of dynamic links, includingconfiguring the dynamic links for distribution; modifying a userinterface script according to the dynamic links; and sending themodified user interface script to an application engine for execution ofthe action.
 2. The method of claim 1, where the social event includes anincoming call on a mobile device from a caller, where the contextualinformation relating to the social event comprises a name of a songplaying on the mobile device at time of the incoming call, and where theprogram script is configured to set the song as a ringtone on the mobiledevice for the caller.
 3. The method of claim 2, where the programscript is configured to further consider historical data about songsplaying on the mobile device when receiving incoming calls from thecaller.
 4. The method of claim 1, where the social event includesnavigating by landmarks, and the contextual information relating to thesocial event comprises uploaded information relating to landmarks near aposition.
 5. The method of claim 1, where the social event includes anincoming call on a mobile device from a caller during a particular timeperiod, and the contextual information relating to the social eventcomprises a predetermined message for sending the caller.
 6. The methodof claim 1, where the social event includes an incoming call on a mobiledevice from a caller, and the contextual information relating to thesocial event comprises a picture of the caller.
 7. The method of claim6, where the contextual information relating to the social eventcomprises a picture of a recipient of the call with the caller.
 8. Themethod of claim 1, where the social event includes a reminder for anevent, and the contextual information relating to the social eventcomprises a picture configured to remind a user about the event.
 9. Anapparatus comprising: a processor; a memory having stored thereinmachine executable instructions, that if executed, cause the apparatusto perform at least the following: loading into the processor a programscript involving a social event; interpreting the program script togenerate a repository of dynamic links related to data and providingcontextual information relating to the social event; processing therepository of dynamic links, including configuring the dynamic links fordistribution; modifying a user interface script using the dynamic links;and sending the modified user interface script to an application enginefor execution of an action.
 10. The apparatus of claim 9, where thesocial event comprises an incoming call from a caller, and where theprogram script is configured to set a song playing at a time of theincoming call as a ringtone for the caller, the apparatus comprising: amedia player component configured to play the song.
 11. The apparatus ofclaim 9, comprising: a global positioning satellite receiver circuitryconfigured to determine location information, the contextual informationcomprising the location information.
 12. The apparatus of claim 11,where the social event includes navigating by landmarks, and thecontextual information relating to the social event comprises uploadedinformation relating to landmarks near a position.
 13. The apparatus ofclaim 9, where the social event includes an incoming call on a mobiledevice from a caller during a particular time period, and the contextualinformation relating to the social event comprises a predeterminedmessage for sending the caller.
 14. The apparatus of claim 9, where thesocial event includes an incoming call on a mobile device from a caller,and the contextual information relating to the social event comprises apicture of a recipient of the call with the caller.
 15. Acomputer-readable medium comprising computer-executable instructionsconfigured to cause an apparatus to perform at least the following:loading a program script involving a social event and an action;interpreting the program script to generate a repository of dynamiclinks related to data and providing contextual information relating tothe social event; processing the repository of dynamic links, includingconfiguring the dynamic links for distribution; modifying the userinterface script according to the dynamic links; and sending themodified user interface script to an application engine for execution ofthe action.
 16. The computer-readable medium of claim 15, where thesocial event includes an incoming call from a caller, where thecontextual information relating to the social event comprises a name ofa song playing at time of the incoming call, and where the programscript is configured to consider historical data about songs playingwhen receiving incoming calls from the caller and set an appropriatesong as a ringtone for the caller.
 17. The computer-readable medium ofclaim 15, where the social event includes an incoming call on a mobiledevice from a caller during a particular time period, and the contextualinformation relating to the social event comprises a predeterminedmessage for sending the caller.
 18. The computer-readable medium ofclaim 15, where the social event includes an incoming call on a mobiledevice from a caller, and the contextual information relating to thesocial event comprises a picture of the caller.
 19. Thecomputer-readable medium of claim 18, where the contextual informationrelating to the social event comprises a picture of a recipient of thecall with the caller.
 20. The computer-readable medium of claim 15,where the social event includes a reminder for an event, and thecontextual information relating to the social event comprises a pictureconfigured to remind a user about the event.